u`
Ep.266uC^[tFCX̌pvi 9̗͂Ks܂j

otH[F~jK mini266.cs

EuAWKFp.265 interface05.csvIDaC^[tFCXOāAmF悤

쐬

//~jK mini266.cs
using System;
interface IMas { //ułE܂vC^[tFCX
    void show(int i); //ۃ\bh@
}
abstract class Base { //ۃNX
    public abstract void show(int i); //ۃ\bhA
}
class MyClass : Base, IMas { //ۃNXpC^[tFCXNX
    void IMas.show(int i) { //ۃ\bh@̃I[oChȂ̂ŁułE܂v
        Console.WriteLine("i{0}ł", i);
    }
    public override void show(int i) { //ۃ\bhÃI[oCh
        Console.WriteLine("i{0}", i);
    }
}
class interface05 {
    public static void Main() {
        IMas im; //C^[tFCX^̕ϐ
        MyClass mc = new MyClass(); //ۃNXpC^[tFCXNX̃IuWFNg
        im = mc; //C^[tFCX^̕ϐɑ
        im.show(5); //ۃ\bh@̃I[oChs
        mc.show(5); //C^[tFCX^̕ϐoRȂƒۃ\bhÃI[oChs
    }
}

p.266 C^[tFCX̌p

ENX̌pƓlɁAC^[tFCXC^[tFCXpł
EɂAC^[tFCX̗hƂł
E܂AC^[tFCXŒ`ς̒ۃoÃC^[tFCXł`Ă܂Ƃh~łB
EpC^[tFCX{C^[tFCXApC^[tFCXhC^[tFCXƂ
E`F interface hC^[tFCX : {C^[tFCX {c}
EȂApȂ̂ŁAhC^[tFCX̊{C^[tFCXƂ͂łȂ

p.266 interface06.cs

//p.266 interface06.cs
using System;
interface IInterface1 { //{C^[tFCX
    void setdatano(int n); //ۃ\bh@
    void setdata(double data, int i); //ۃ\bhA
    double calcsum(); //ۃ\bhB
}
interface IInterface2 : IInterface1 { //hC^[tFCX
    //Ɂuvoid setdatano(int n); //ۃ\bh@vƂ݂Ȃ
    //Ɂuvoid setdata(double data, int i); //ۃ\bhAvƂ݂Ȃ
    //Ɂudouble calcsum(); //ۃ\bhBvƂ݂Ȃ
    double calcaverage(); //ۃ\bhC
}
class MyClass : IInterface2 { //hC^[tFCXNX
    double[] data; //zp̎Qƕϐ
    bool bOK = false; //σtOItɂ
    public void setdatano(int n) { //ۃ\bh@̃I[oCh
        data = new double[n]; //Ŏ󂯎vf̔z𐶐
        bOK = true; //σtOIɂ
    }
    public void setdata(double d, int i) { //ۃ\bhÃI[oCh
        if (!bOK) { //σtOIt()H
            Console.WriteLine("z̏łĂ܂");
            return;
        }
        data[i] = d; //Ŏ󂯎lƓYŔzɊi[
    }
    public double calcsum() { //ۃ\bhB̃I[oCh
        if (!bOK) { //σtOIt()H
            Console.WriteLine("z̏łĂ܂");
            return -1.0; //ςł|Ԃ
        }
        double sum = 0.0; //vp
        for (int i = 0; i < data.Length; i++) { //Sf[^ɂČJԂ
            sum += data[i]; //vɑ
        }
        return sum; //vԂ
    }
    public double calcaverage() { //ۃ\bhC̃I[oCh
        double sum = calcsum(); //v𓾂
        return sum / data.Length; //Ŋĕς𓾂ĕԂ
    }
}
class interface06 {
    public static void Main() {
        MyClass mc = new MyClass();
        int nNo;
        while (true) { //[v
            Console.Write("f[^---");
            string strno = Console.ReadLine();
            nNo = Int32.Parse(strno); //uint.ParsevƓ
            mc.setdatano(nNo); //vfnNo̔z𐶐
            for (int i = 0; i < nNo; i++) { //vf̕AJԂ
                Console.Write("data[{0}] = ", i);
                string strdata = Console.ReadLine();
                mc.setdata(double.Parse(strdata), i); //Ɋi[
            }
            Console.WriteLine("v = {0}", mc.calcsum());
            Console.WriteLine(" = {0}", mc.calcaverage());
            Console.WriteLine();
            Console.Write("܂(Y/N)---");
            string yn = Console.ReadLine();
            if (yn == "N" || yn == "n") {
                break;
            }
        }
    }
}

~jK mini267.cs

EhC^[tFCX^ƂϐA{C^[tFCX^Ƃϐň邩ǂmF悤
E{C^[tFCXF interface RunAble { void run(); }
EhC^[tFCXF interface FastRunAble { void fastrun(); }
EhC^[tFCXNXF class Dragon : FastRunAble {c}

쐬

//~jK mini267.cs
using System;
interface RunAble { //{C^[tFCX
    void run(); //ۃ\bh@
}
interface FastRunAble  : RunAble { //hC^[tFCX
    //Ɂuvoid run();//ۃ\bh@vƂ݂Ȃ
    void fastrun(); //ۃ\bhA
}
class Dragon : FastRunAble { //hC^[tFCXNX
    public void run() { //ۃ\bh@̃I[oCh
        Console.WriteLine("rő");
    }
    public void fastrun() { //ۃ\bhÃI[oCh
        Console.WriteLine("Ƌrő");
    }
}
class mini267 {
    public static void Main() {
        FastRunAble Veldra = new Dragon(); //hC^[tFCX^Ƃϐ
        Veldra.fastrun(); //ۃ\bhÃI[oChĂ
        RunAble Veldra2 = Veldra; //{C^[tFCX^Ƃϐ
        Veldra2.run(); //ۃ\bh@̃I[oChĂ
    }
}

p.270iC^[tFCX̌pƖỎB؂j

EhC^[tFCXŁA{C^[tFCXƓVOj`̉zo`ł
ÉANX̌p̏ꍇƓlɁuỎB؂(p.228)vƂȂ
EāAnewL[[hOuāAỎB؂ł邱Ƃ𖾎Ɨǂ

p.270 interface07.cs

//p.270 interface07.cs
using System;
interface IMyInterface { //{C^[tFCX
    void show1(); //ۃ\bh@
    void show2(); //ۃ\bhA
}
interface IMyInterface2 : IMyInterface { //hC^[tFCX
    //Ɂuvoid show1(); //ۃ\bh@vƂ݂Ȃ邪B؂
    //Ɂuvoid show2(); //ۃ\bhAvƂ݂Ȃ
    new void show1(); //ۃ\bh@ɑ΂閼ỎB؂ɂȂ
    void show3(); //ۃ\bhB
}
class MyClass : IMyInterface2 { //hC^[tFCXNX
    public void show1() { //ۃ\bh@ɑ΂閼ỎB؂̃I[oCh
        Console.WriteLine("show1");
    }
    public void show2() { //ۃ\bhÃI[oCh
        Console.WriteLine("show2");
    }
    public void show3() { //ۃ\bhB̃I[oCh
        Console.WriteLine("show3");
    }
}
class interface07 {
    public static void Main() {
        MyClass mc = new MyClass();
        mc.show1(); //ۃ\bh@ɑ΂閼ỎB؂̃I[oChĂ
        mc.show2(); //ۃ\bhÃI[oChĂ
        mc.show3(); //ۃ\bhB̃I[oChĂ
    }
}

~jK mini268.cs

EhC^[tFCXŁA{C^[tFCX̒ۃ\bhƓVOj`Ŗ߂l^قȂ钊ۃ\bh`ĖỎB؂ł邪AhC^[tFCXNXŁA߂l^قȂ钊ۃ\bĥ݂I[oChƃG[ɂȂ邱ƂmF悤
EuC^[tFCX.\bhvŗI[oChƃG[邱ƂmF悤
E{C^[tFCXF interface RunAble { void run(); }
EhC^[tFCXF interface FastRunAble { new int run(); }
EhC^[tFCXNXF class Dragon : FastRunAble {c}
 p.272 interface08.csł͖߂l^ۃ\bhŖOB؂Ă邪AIȕKv͂܂Ȃ̂ŁA̗ŗƗǂ

쐬

//~jK mini268.cs
using System;
interface RunAble { //{C^[tFCX
    void run(); //ۃ\bh@
}
interface FastRunAble  : RunAble { //hC^[tFCX
    //Ɂuvoid run();//ۃ\bh@vƂ݂ȂB؂
    new int run(); //ۃ\bhA
}
class Dragon : FastRunAble { //hC^[tFCXNX(G[)
    void RunAble.run() { } //ۃ\bh@̃I[oCh
    int FastRunAble.run() { //ۃ\bhÃI[oCh
        Console.WriteLine("rő");
        return 100;
    }
}
class mini266 {
    public static void Main() {
        FastRunAble Veldra = new Dragon(); //hC^[tFCX^Ƃϐ
        int speed = Veldra.run(); //ۃ\bhÃI[oChĂ
        Console.WriteLine("{0}km/h", speed);
    }
}

p.254 KPEQ qg

Ep.231 override01.csɂƗǂ
EMain\bh͉L̂悤ɂƗǂ
@@ hNXłA2NX̃CX^X𐶐
@A @Calc\bhsA邱ƂmF
@B @{NXłA1^Ƃϐɑ
@C BCalc\bhsAa邩邩mF

쐬Fp.254 KP

//p.254 KP
using System;
class A1 { //aԂ\bh{NX
    public virtual int Calc(int a,int b) { //I[oCh\ȉz\bhɂ
        return a + b; //aԂ
    }
}
class A2 : A1 { //Ԃ\bhhNX
    public override int Calc(int a,int b) { //I[oCh\bh
        return a - b; //Ԃ
    }
}
class sampleclass {
    public static void Main() {
        A2 a = new A2(); //hNX̃IuWFNg𐶐
        Console.WriteLine("{0}",a.Calc(1,2)); //Ԃ\bhɂȂ
        A1 b; //{NX^Ƃϐ`
        b = a; //hNX̃IuWFNgĂc
        Console.WriteLine("{0}",b.Calc(1,2)); //ԐɂAԂ\bhɂȂ
    }
}

쐬Fp.254 KQ

//p.254 KQ
using System;
class A1 { //aԂ\bh{NX
    public int Calc(int a,int b) { //ʏ̃\bhɂ
        return a + b; //aԂ
    }
}
class A2 : A1 { //Ԃ\bhhNX
    new public int Calc(int a,int b) { //ỎB؂ƂȂ郁\bh
        return a - b; //Ԃ
    }
}
class sampleclass {
    public static void Main() {
        A2 a = new A2(); //hNX̃IuWFNg𐶐
        Console.WriteLine("{0}",a.Calc(1,2)); //Ԃ\bhɂȂ
        A1 b; //{NX^Ƃϐ`
        b = a; //hNX̃IuWFNg
        Console.WriteLine("{0}",b.Calc(1,2)); //ỎB؂ɂAaԂ\bhɂȂ
    }
}

p.274 K qg

E̕Ԃɂ́ALengthvpeB(p.73)pƗǂ
菇
@ C^[tFCX͓ɎwȂȂ̂ŁACountableƂ
A @̒ɁAۃ\bh int Count(string str); `
B CountableC^[tFCXNXɎwȂȂ̂ŁADragonƂ
C BɂāAint Count(string str)\bhI[oCh
D C̒ŁAstrŎ󂯎̕return
E sp̃NXɎwȂȂ̂ŁAex10Ƃ
F EɂāAMain\bh`
G F̒ŁADragonNX̃CX^X𐶐
H GpCount\bhɓKȕ^ʂConsole.WriteLine邱ƂœmF

쐬

//p.274 K
using System;
interface Countable { //C^[tFCX̒`
    int Count(string str); //ۃ\bh
}
class Dragon : Countable { //C^[tFCXNX̒`
    public int Count(string x) { //ۃ\bh̃I[oCh
        return x.Length;
    }
}
class ex10 { //spNX
    public static void Main() {
        Dragon y = new Dragon(); //C^[tFCXNX̃IuWFNg
        Console.WriteLine("a̕{0}ł", y.Count("Happy!!"));
    }
}
